package com.fastplatform.repository;

import com.fastplatform.entity.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificationExecutor<Role> {
    
    /**
     * 查找所有有效的角色（使用JPA命名推断）
     */
    List<Role> findByDeletedFalseOrderBySortOrderAsc();
    
    /**
     * 根据角色编码查找角色（未删除）（使用JPA命名推断）
     */
    Optional<Role> findByRoleCodeAndDeletedFalse(String roleCode);
    
    /**
     * 根据角色名称查找角色（未删除）（使用JPA命名推断）
     */
    Optional<Role> findByRoleNameAndDeletedFalse(String roleName);
    
    /**
     * 根据角色ID列表查找角色（未删除）
     */
    List<Role> findByIdInAndDeletedFalse(List<Long> ids);
}